function AccountValidator() {
    this.formFields = [
        $('#d-name-tf'), $('#d-email-tf'), $('#d-pass-tf'), $('#d-re-pass-tf')
    ];

    this.errorMsg = [
        '用户名', '邮箱', '密码', '确认密码'
    ];

}

//获取用户填写数据
// AccountValidator.prototype.getUserData = function () {
// 	var userData = {
// 		'user': $('#user-name').val(),
// 		'pass': $('#pass-tf').val(),
// 		'name': $('#inc-name').val(),
// 		'email': $('#inc-address').val()
// 	};
// 	return userData;
// };


//验证用户填写的数据是否有效 type = update 验证更新信息， add: 添加用户信息
AccountValidator.prototype.validateForm = function (formData) {

    // if (!$('#checkbox-label').prop("checked")) {
    // 	generateNotify('', '请同意《使用须知》《违章处罚条例》', 'danger', 2000);
    // 	return false;
    // }

    //必填字段不能为空 (前四项）
    for (var i = 0; i < 4; i++) {
        if (formData[i].value.trim() === '') {
            generateNotify('', this.errorMsg[i] + '不能为空', 'danger', 2000);
            return false;
        }
    }

    //检查用户名， 如果是更新信息，不用检查
    var name = formData[0].value;
    var namePattern = /^[_a-zA-Z0-9_]{4,20}$/;

    if (name.length > 20 || name.length < 4) {
        generateNotify('', this.errorMsg[0] + '长度必须在4-20之间', 'danger', 2000);
        return false;
    }

    if (!namePattern.test(name)) {
        generateNotify('', this.errorMsg[0] + "必须是字母、数字和'_'组合", 'danger', 2000);
        return false;
    }

    //检查联系人邮箱, 如果是更新，不检查用户邮箱
    var ev = new EmailValidator();
    if (!ev.validateEmail(formData[1].value)) {
        generateNotify('', this.errorMsg[1] + "格式错误", 'danger', 2000);
        return false;
    }

    //检查密码，如果是更新页面，可以不填写密码
    var password = formData[2].value;
    // if (!namePattern.test(password)) {
    //     generateNotify('', this.errorMsg[2] + "必须是字母、数字和'_'组合", 'danger', 2000);
    //     return false;
    // }

    var rePassword = formData[3].value;
    if (password != rePassword) {
        generateNotify('', "两次输入密码不一致", 'danger', 2000);
        return false;
    }


    return true;
};

AccountValidator.prototype.validateDoctorExpert = function () {
    //必填字段不能为空 (前四项）
    for (var i = 0; i < 4; i++) {
        if (this.formFields[i].val().trim() === '') {
            generateNotify('', this.errorMsg[i] + '不能为空', 'danger', 2000);
            return false;
        }
    }

    //检查用户名， 如果是更新信息，不用检查
    var name = this.formFields[0].val();
    var namePattern = /^[_a-zA-Z0-9_]{4,20}$/;

    if (name.length > 20 || name.length < 4) {
        generateNotify('', this.errorMsg[0] + '长度必须在4-20之间', 'danger', 2000);
        return false;
    }

    if (!namePattern.test(name)) {
        generateNotify('', this.errorMsg[0] + "必须是字母、数字和'_'组合", 'danger', 2000);
        return false;
    }

    //检查联系人邮箱, 如果是更新，不检查用户邮箱
    var ev = new EmailValidator();
    var email = this.formFields[1].val();
    if (!ev.validateEmail(email)) {
        generateNotify('', this.errorMsg[1] + "格式错误", 'danger', 2000);
        return false;
    }

    //检查密码，如果是更新页面，可以不填写密码
    var password = this.formFields[2].val();
    var rePassword = this.formFields[3].val();
    if (password != rePassword) {
        generateNotify('', "两次输入密码不一致", 'danger', 2000);
        return false;
    }

    //科室
    var section = Number($('#section-tf').val());
    if (section === 0) {
        generateNotify('', '请选择科室', 'danger', 2000);
        return false;
    }

    //医生等级
    var order = Number($('#order-select-tf').val());
    if (order === 0) {
        generateNotify('', '请选择医生等级', 'danger', 2000);
        return false;
    }

    //医龄
    var medicalAge = Number($('#medical-age-tf').val());
    if (medicalAge === 0) {
        generateNotify('', '请选择医龄', 'danger', 2000);
        return false;
    }

    // //证件
    if ($('#license-upload-image').attr('src') === '') {
        generateNotify('', "必须上传证件", 'danger', 2000);
        return false;
    }

    var newData = {};
    newData['name'] = name;
    newData['pass'] = password;
    newData['email'] = email;
    newData['section'] = section;
    newData['order'] = order;
    newData['medical-age'] = medicalAge;

    return newData;

};

	